package com.copa.l1456;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

/**
 * @author copa
 * @createDate 2022-06-27 14:39
 * @function
 */
public class Test1 {

    private static Set<Character> vowels = new HashSet<Character>();

    public Test1() {
        vowels.add('a');
        vowels.add('e');
        vowels.add('i');
        vowels.add('o');
        vowels.add('u');
    }

    public int maxVowels(String s, int k) {
        // 结果
        int result;
        // 临时（k个字母之间有多少个元音）
        int temp = 0;
        char[] letters = s.toCharArray();
        int left = 0;
        int right = k - 1;
        for (int i = left; i <= right; i++) {
            if (checkVowel(letters[i])) {
                // 先统计第一次的元音字母数
                temp++;
            }
        }
        result = temp;
        while (right < letters.length - 1) {
            // 滑动窗口，右移一个左移一个，保持right-left=k
            right++;
            if (checkVowel(letters[right])) {
                ++temp;
            }
            if (checkVowel(letters[left])) {
                --temp;
            }
            left++;
            result = Math.max(temp, result);
        }
        return result;
    }

    public boolean checkVowel(char c) {
        /*char[] vowels = {'a', 'e', 'i', 'o', 'u'};
        for (char vowel : vowels) {
            if (vowel == c) {
                return true;
            }
        }*/
        // 判断是否为元音字母
        return vowels.contains(c);
    }

    public static void main(String[] args) {
        String s = "leetcode";
        System.out.println(new Test1().maxVowels(s, 3));
    }
}
